//排班配置
export interface RegistrationConfigForm {
 

   code: string;
     msg: string;
     timestamp: number;
     data: RegistrationConfigFormData;
     ok: boolean;
}
export interface RegistrationConfigFormData {
     // 最大爽约次数;一周可以爽约几次
  maxNoShowCount: number;
  //最晚取号时间;截止到医生下班前半个小时可以取号 分钟
  latestRegistrationTime: number;
  //预约范围  天
  releaseAheadDay: number;
};


/**班次管理 */

export interface CopyRegisration {
  deptIdList: number[];
  fromStart: string;
  fromEnd: string;
  targetStart: string;
  targetEnd: string;
}

export interface ShiftFrom {
  shiftName?: string;
  pageNo: number;
  pageSize: number;
}
// 维护班组
export interface SchedulingRole {
  detailList?: SchedulingItem[];
  scheduleId: string;
  workDate: string;
  empId: number;
}

export interface SchedulingItem {
  detailId?: number;
  deptId: number | null;
  roomId: number | null;
  shiftId: number;
  shiftName: string;
  isLeave: string
  startTime: string;
  endTime: string;
  leaveStartTime?: string;
  leaveEndTime?: string;
}

//查询需要退号列表参数
export interface RangeForm {
  /**班次ID；必须参数 */
  shiftId: number;
  /**医生ID 员工请假场景需要给 */
  doctorId?: any;
  /**时段集合 删除班次 修改班次时间 取消排班 员工请假 */
  rangeList?: Time[];
  pageNo?: number;
  pageSize?: number;
}

export interface Time {
  start: string;
  end: string;
}

//退号列表

export interface RangeResponse {
  code: string
  msg: string
  timestamp: number
  data: RangeList
  ok: boolean
}
export interface RangeList {
  /* 总条数 */
  totalCount: number;
  /* 返回的列表数据 */
  list: RangeItem[];
}

export interface RangeItem {
  /* 挂号ID; */
  registerId: number;

  /* 诊号;唯一诊号 */
  visitNo: string;

  /* 就诊日期;2025-07-09 */
  visitDate: string;

  /* 就诊时段;就诊时段1.上午2下午3晚上 visitPeriodEnum */
  visitPeriod: string;

  /* 排队序号;排队序号 1/2/3 */
  visitSeqNo: number;

  /* //就诊开始时段;08：00 */
  visitStartTime: string;

  /* 就诊结束时段;08：15 */
  visitEndTime: string;

  /* 挂号方式;1挂号2预约 regMethodEnum */
  regMethod: string;

  /* 挂号渠道;挂号渠道1挂号室2门诊3微信 regChannelEnum */
  regChannel: string;

  /* 医生ID */
  doctorId: number;

  /* 医生名 */
  doctorName: any;

  /* 科室ID */
  deptId: number;

  /* 科室名 */
  deptName: any;

  /* 诊室ID */
  roomId: number;

  /* 诊室名 */
  roomName: any;

  /* 初诊类型;1、初诊 2、复诊 */
  visitType: string;
  
  /* 挂号类型;1、普通号 2、急诊 */
  regType: string;

  /* 挂号费;单位：分 */
  regFee: number;

  /* 挂号状态;挂号状态枚举 regStatusEnum */
  regStatus: string;

  /* 支付状态;支付状态枚举 payStatusEnum */
  payStatus: string;

  /* 患者ID */
  patientId: number;

  /* 患者名 */
  patientName: string;

  /* 患者性别;1男生2女生3未知 */
  patientGender: string;

  /* //患者电话 */
  patientPhone: string;

  /* 身份张号 */
  idCard: any;

  /* 年龄年 */
  ageYear: any;

  /* 年龄月 */
  ageMonth: any;

  /* 备注 */
  remark: any;

  /* 订单ID */
  orderId: number;
}

//列表

export interface ShiftResponse {
  code: string
  msg: string
  timestamp: number
  data: ShiftList
  ok: boolean
}
export interface ShiftList {
  totalCount: number;
  list: ShiftRole[];
}
export interface ShiftRole {
  shiftId?: number | null;
  shiftName: string;
  startTime: string;
  endTime: string;
  createBy?: any;
  createTime?: string;
  updateBy?: any;
  updateTime?: string;
}

/**排班 */
export interface ScheduleDataResponseForm {
  startDate?: string; //开始日期
  endDate?: string; //结束日期
  empName?: string; //员工姓名
  deptId?: string; //部门ID
  pageNo: number;
  pageSize: number;
}

//列表
export interface ScheduleResponse {
  code: string
  msg: string
  timestamp: number
  data: ScheduleDataResponse
  ok: boolean
}
export interface ScheduleDataResponse {
  totalCount: number; // 总记录数
  list: ScheduleDataResponseList[]; // 员工排班列表
}

export interface ScheduleDataResponseList {
  empId: number; // 员工ID
  empNo: string; // 员工编号
  empName: string; // 员工姓名
  deptId: number; // 部门ID
  scheduleList: ScheduleList[]; // 员工排班列表
}

export interface ScheduleList {
  scheduleId: string; // 排班ID
  workDate: string; // 工作日期
  detailList: DetailList[]; // 排班详情列表
}

export interface DetailList {
  detailId: number; // 排班详情ID
  scheduleId: string; // 排班ID
  deptId: number; // 部门ID
  deptName: string; // 部门名称
  roomId: number; // 诊室ID
  roomName: string; // 诊室名称
  shiftId: number; // 班次ID
  workDate?: string;
  shiftName: string; // 班次名称
  startTime: string; // 开始时间
  endTime: string; // 结束时间
  isLeave: string; // 是否请假
  leaveStartTime: string; // 请假开始时间
  leaveEndTime: string; // 请假结束时间
}
